from django.shortcuts import render,redirect,HttpResponse
from app03 import models         #引入表
from django import forms
from app03.utils.pegination import Pegination
from app03.utils.bootrsap import  BootrsapModelForm

#用户列表
def deantUser_list(request):
        # 搜索框
        seach_list = request.GET.get( 't', '' )
        data_t = {}
        if seach_list:
            data_t['name__contains'] = seach_list
        # 获取用户提交的信息
        dest = models.UserTypes.objects.filter( **data_t )
        #分页
        page_object=Pegination(request,dest,page_size=5)
        coxtent={
            'dest':page_object.page_mun,
            'page_string':page_object.html(),
            'seach_list':seach_list
        }


        return render(request,'deantUser_list.html',coxtent)

#创建ModelForm
class InfoModelForm(BootrsapModelForm):
    # 设置输入员工名称不能小于2个字符
    name= forms.CharField( min_length=2, label='名字')
    class Meta:
        #关联表
        model=models.UserTypes
        fields='__all__'
        #定义一个方法 用来设置插件的class属性
#新建用户信息
def deantUser_add(request):
    if request.method=='GET':
        #使用InfoModelForm
        tode=InfoModelForm()
        return render(request,'deantUser_add.html',{'tode':tode})

    else:
        tode=InfoModelForm(data=request.POST)

        #验证表单
        if tode.is_valid():
            #自动把数据保存到数据库当中
            tode.save()
            return redirect( '/deantUser/list/' )
        #验证失败
        return render(request,'deantUser_add.html',{'tode':tode})

#编辑员工薪资
def deantUser_edit(request,sid):
    #根据id获取员工表对应的那一列的数据
    row_t=models.UserTypes.objects.filter(id=sid).first()
    if request.method=='GET':
        #将表中的每一列传给页面  在前端页面生成对应的排版
        tode=InfoModelForm(instance=row_t)
        return render(request,'deantUser_edit.html',{'tode':tode})
    else:
        # 获取到用户发送的post请求 得到数据  将用户提交的数据更新到当前行（instance=row_object）
        tode=InfoModelForm(data=request.POST,instance=row_t)
        #验证表单
        if tode.is_valid():
            #自动保存到数据库
            tode.save()
            return redirect('/deantUser/list/')
        #验证失败 返回编辑页面
        return render(request,'deantUser_edit.html',{'tode':tode})

#删除用户
def deantUser_delete(request):
    #获取到id
    sid=request.GET.get('sid')
    # print(sid)
    #根据id删除数据库中对于的那一列
    models.UserTypes.objects.filter(id=sid).delete()
    # 回到用户列表
    return redirect( '/deantUser/list/' )



